The present invention relates generally to facility management systems such as home automation systems, and, more particularly, to an object oriented design software control object within such systems that provides for a logical representation and implementation of a network of physical devices.
In the past, environments having networked equipment were typically limited to commercial and industrial sites. Such equipment was typically complex and highly sophisticated computer controlled machines that utilized networks to coordinate manufacturing activities. However, unlike the commercial and industrial setting, the typical consumer setting included devices and appliances that were fairly unsophisticated and that were operated by a user on a one-to-one basis. To achieve the consumer device""s specific function, the user had to physically interact with the device by, for example, pressing buttons on a coffee maker to preset the machine to turn ON at a specific time.
Early advances in consumer devices and appliances were limited to remote control devices that, at first, were wired to the device, and later used infrared (IR) communications to transmit commands. However, the remote control devices still forced the user to interact with their respective devices on a one-to-one basis. In addition, most hand-held remote control devices were proprietary, which required separate remote controllers for each consumer product. Further advancements included universal remote controllers that were capable of being programmed to control many consumer devices. However, universal remote control devices were limited in that they were typically not able to control devices other than entertainment equipment.
Lately, consumer appliances have become more sophisticated because of the decreased size and costs of computer-related components such as microprocessors. These new consumer devices include the so-called xe2x80x9csmartxe2x80x9d devices that, like the sophisticated commercial and industrial machinery, are capable of executing predefined tasks and capable of communicating over a network infrastructures. An example of a system is smart devices is CEBus(copyright), which may utilize household powerlines to transport messages between compliant CEBus(copyright) household devices. CEBus(copyright) is implemented per EIA IS-60 for home automation. The CEBus(copyright) system utilizes controller and receptacle units to communicate and control CEBus(copyright) compliant devices. The receptacle units are connected to standard household receptacles and the command and control information is communicated over the powerlines. However, the CEBus(copyright) system is a hardware solution, which requires that the compliant devices be designed to be compatible with the standard. As a further limitation, the CEBus(copyright) controller is a special-purpose device. While this is an advancement over prior solutions, this hardware solution limits the upgradablity of the network and the devices, and fails to provide a solution for non-compliant smart devices.
A further example of a system that is intended to network devices is Jini(trademark), which is based on Java(trademark). Jini(trademark) uses Java Remote Method Invocation protocols to move code around a network of devices. Network services run on top of the Jini(trademark) software architecture such that devices and applications may register with the network via a lookup service. However, the Jini(trademark) system is limited in that each device must register with the lookup service for other devices to discover them. Thus, each device is not aware of other devices on the network without first pointing to the lookup service. Further, there is no general purpose user interface that enables a user to interact and control all of the networked devices from a remote location.
In view of the above, there is a need for a system whereby once isolated and non-remotely controllable and configurable devices are able to share information with and about each other, and are able to provide and accept common command, control, and communication though a network. There is also a need for a system that provides the networked devices with the ability to operate autonomously in the case of a network failure, or for localized control and operation. There is also a need for a system that provides users with a method to control devices with a general purpose device (e.g., personal computer), and that provides a method to communicate over open network infrastructures. The present invention provides a solution to address the limitations and shortcomings of the prior art.
The present invention includes a set of software components and an application programming interface for the logical networked representation and implementation of a system of smart devices. The software components may be generally expressed as a control object component and a user interface component. The control object (CO) is a software object that may carry out communication, and accept and issue control messages. The control object allows a user to remotely control or query a physical device for which the specific control object has responsibility and also maintains logical and physical connections and control of the device.
The second component is the user interface, or consumer presentation display (CPD), which supplies a coherent and transparent interface across all network media and topologies. The user interface is capable of communicating with any control object that it identifies as being controllable in a given system. This communication may be across a logical network or may be local to a particular device. The user interface takes on the xe2x80x9cpersonalityxe2x80x9d of the physical device for which the attendant control object carries a logical and physical mapping and control responsibility.
In accordance with an aspect of the invention, the control object may be adapted to bind to any designed physical transport mechanism for communication with other control objects and is adapted to be embedded in a container application and executed within a wrapper executable. In addition, the control object is preferably polymorphic, and thus is able to take on the logical attributes and command and control capabilities of any of the devices.
The control object may be a component object model object (COM) that exists within the operating system. This preferably provides wrappers for exposed clients and enables the use of method calls and exposed properties by the operating system or other application software programs. The control object may include extensions such that the control object may logically and physically pass a control signal to the devices and send a message to one of any electronic controllers or interfaces provided in the devices. In accordance with a feature of the invention, the first registered control object in the system may be designated a manager object, which performs list management to maintain and administer the list of control objects by periodically broadcasting the list to all registered control objects on the system. The list contains the logical attributes, an identifier and an address of all registered control objects on the system. The Identifiers are preferably globally unique random numbers generated at runtime, so as to identify each registered object xe2x80x9con-the-fly.xe2x80x9d This globally unique identifier may be also used with directed object-to-object communication, where a specific object must communicate with another specific object. Preferably, the random generator is a linear congruential generator; i.e., f(z)=16807 z mod (2**31xe2x88x921).
In accordance with another feature of the present invention, the user interface is adapted to control the devices either locally or across the network. The user interface may also be adapted to control all of the devices that are functioning on the network via the control object. In addition, the user interface preferably supplies a coherent and transparent interface across all network media and topologies. Further, if the devices include a display by which the device may be controlled, in accordance with an aspect of the invention, the display may be adapted to control other devices via the network and the control objects.
In accordance with an aspect of the present invention, a method of registering the control objects is provided, which includes broadcasting a control message from an enabled control object to inform other registered control objects that the enabled control object exists; determining if the enabled control object is a first registered control object; and appointing the first registered object as a manager object to administer the list.
The manager object may send the list to any new control object that registers with the system; periodically broadcast the list to all registered control objects; and perform a synchronization to force all other control objects to synchronize to the list. An election process is held if the manager object ceases to function. The election process may comprise promoting a second registered control object to the manager object; promoting all other control objects up one position on the list; and distributing the list to all registered control objects on the system. If any other control object ceases to function, the list is preferably distributed to all registered control objects if any control object other than the manager object ceases to function.
Other features of the invention are described below.